import axios from 'axios'


export function request(config) {
  //1. 创建axios的实例
  const instance = axios.create({
    baseURL: 'http://152.136.185.210:7878/api/hy66',
    timeout: 5000
  })

  //2. axios的拦截器
    //2.1 请求拦截的作用
  instance.interceptors.request.use(config => {   //? 这里是把config这个参数 也就是请求到的数据 全部拦截了， 后面就没法做数据操作了，所以这里还要写一个return config，你得把数据给人家传过去。
    // console.log(config);
    // 如果说config里面的一些信息不符合服务器的要求
    // 比如说每次发送网络请求的时候， 都希望在界面中显示一个请求的图标
    // 某些网络请求（比如登录（token）），必须携带一些特殊信息。
    return config
  }, err => {
    // console.log(err);
  })

    //2.2 响应拦截
  instance.interceptors.response.use(res => {  //? 因为是响应的， 所以这里是res结果作为参数
    // console.log(res);
    return res;
  }, err => {
    // console.log(err);
  })

  // 发送真正的网络请求
  return instance(config)   //! 在axios这里的return的这个instance已经是一个promise操作了，所以这里可以直接调用then和catch  axios源码里有

}
